package com.wasion.core.db.orm;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

/**
 * 
 * @ClassName: BaseSDDBHelper
 * @Description: SD卡下数据库助手类
 * @author 高意
 * @date 2014年7月23日 上午10:42:28
 * 
 */
public class BaseSDDBHelper extends AbstactSDSQLiteOpenHelper {

	/** The model classes. */
	private Class<?>[] modelClasses;

	/**
	 * 初始化一个BaseSDDBHelper.
	 * 
	 * @param context
	 *            应用context
	 * @param path
	 *            要放到SDCard下的文件夹路径
	 * @param databaseName
	 *            数据库文件名
	 * @param factory
	 *            数据库查询的游标工厂
	 * @param databaseVersion
	 *            数据库的新版本号
	 * @param modelClasses
	 *            要初始化的表的对象
	 */
	public BaseSDDBHelper(Context context, String path, String databaseName,
			SQLiteDatabase.CursorFactory factory, int databaseVersion,
			Class<?>[] modelClasses) {
		super(context, path, databaseName, null, databaseVersion);
		this.modelClasses = modelClasses;

	}

	/**
	 * 描述：表的创建.
	 * 
	 * @param db
	 *            数据库对象
	 */
	public void onCreate(SQLiteDatabase db) {
		BaseTableHelper.createTablesByClasses(db, this.modelClasses);
	}

	/**
	 * 描述：表的重建.
	 * 
	 * @param db
	 *            数据库对象
	 * @param oldVersion
	 *            旧版本号
	 * @param newVersion
	 *            新版本号
	 */
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		BaseTableHelper.dropTablesByClasses(db, this.modelClasses);
		onCreate(db);
	}
}
